import type { type } from "os";

/******************************** 添加sku  平台属性 数据ts类型限制    开始  ************************ */
export interface attrValueListObj {
  id: number;
  valueName: string;
  attrId: number;
}

export type attrValueListArray = attrValueListObj[];

export interface PlatformAttributeObj {
  id: number;
  attrName: string;
  categoryId: number;
  categoryLevel: number;
  attrValueList: attrValueListArray;
}

export type PlatformAttributeArray = PlatformAttributeObj[];
/******************************** 添加sku  平台属性 数据ts类型限制    结束  ************************ */

/******************************** 添加sku  销售属性 数据ts类型限制    开始  ************************ */

export interface spuSaleAttrValueListObj {
  id: number;
  spuId: number;
  baseSaleAttrId: number;
  saleAttrValueName: string;
  saleAttrName: string;
  isChecked: null;
}

export type spuSaleAttrValueListArray = spuSaleAttrValueListObj[];

export interface skuSalesAttributeObj {
  id: number;
  spuId: number;
  baseSaleAttrId: number;
  saleAttrName: string;
  spuSaleAttrValueList: spuSaleAttrValueListArray;
}

export type skuSalesAttributeArray = skuSalesAttributeObj[];

/******************************** 添加sku  销售属性 数据ts类型限制    结束  ************************ */

/******************************** 添加sku  图片列表 数据ts类型限制    结束  ************************ */
export interface skuPictureListObj {
  id: number;
  spuId: number;
  imgName: string;
  imgUrl: string;
  isDefault?: string | undefined;
}
export type skuPictureListArray = skuPictureListObj[];
/******************************** 添加sku  图片列表 数据ts类型限制    结束  ************************ */

// 平台属性 对象的类型定义
export interface skuAttrValueObjts {
  attrId: number; // 属性id
  attrName: string; // 属性名
  valueId: number; // 属性值id
  valueName: string; // 属性值名称
}
// 平台属性 数组的类型定义
export type skuAttrValueListts = skuAttrValueObjts[];

// 销售属性 对象的类型定义
export interface skuSaleAttrValueObjts {
  saleAttrId: number; // 销售属性id
  saleAttrName: string; // 销售属性名称
  saleAttrValueId: number; // 销售属性值id
  saleAttrValueName: string; // 销售属性值名称
}
// 销售属性 数组的类型定义
export type skuSaleAttrValueListtts = skuSaleAttrValueObjts[];

//图片列表的 对象的类型定义
export interface skuImageObjts {
  imgName: string;
  imgUrl: string;
  isDefault?: string | undefined;
}
//图片列表的 数组的类型定义
export type skuImageListts = skuImageObjts[];

export type arrString = string[];

// form表单收集数据的类型定义
export interface skuFormDataObjts {
  skuName: string;
  price: number;
  weight: number;
  skuDesc: string;
  skuAttrValueList: arrString; //skuAttrValueListts
  skuSaleAttrValueList: arrString; //skuSaleAttrValueListtts
  skuImageList: skuImageListts; //skuImageListts
  skuDefaultImg: string;
}

// 选中默认值图片通过插槽获取到的row 图片的完整类型定义
export interface skuImageObjwhole extends skuImageObjts {
  id: number;
  spuId: number;
}

/********************  收集表单的数组的类型ts 定义  开始  ********************** */

// spu页面添加SKU属性携带参数的定义

export interface addSkusavedata
  extends Omit<skuFormDataObjts, "skuSaleAttrValueList" | "skuAttrValueList"> {
  spuId: number;
  category3Id: number;
  skuSaleAttrValueList: skuSaleAttrValueListtts;
  skuAttrValueList: skuAttrValueListts;
}
